مديريت پايگاه داده ها در SQL server
 
اموزش بانک اطلاعاتی
اموزش گام به گام بانک اطلاعاتی
 
 

 

SQL Server Profiler

 

 

اين ابزار در واقع برنامه‌اي است كه قادر به اشكال‌زدايي دستورات SQL مي‌باشد. هر نوع دستور SQL كه به تنهايي يا از داخل يك برنامه يا از طرف يك روال ذخيره شده (Stroed Procedvre) و يا هر جاي ديگر اجرا شود توسط اين برنامه شناسايي و ثبت مي‌شود. سپس برنامه مذكور عمل تجزيه وتحليل خود را بر روي اين دستور SQL انجام داده و نتايج آن را به مدير سيستم نمايش مي‌دهد.

 

 

نحوه كار برنامه 
برنامه پروفايلر ليستي از رخدادهايي را كه قادر به تعقيب آن‌ها است در اختيار كاربر قرار مي‌دهد. اين رخدادها پس از انتخاب كاربر در درون يك صف (Queue) قرار گرفته و هرگاه يكي از رخدادها به وقوع بپيوندد، پروفايلر شرح كاملي از جزييات آن را در يك فايل جهت گزارشي به مدير سيستم، ثبت مي‌كند. اين عمليات تعقيب كه در پروفايلر به آنTrace گفته مي‌شود كاملاً توسط كاربر قابل تنظيم است. 
رخدادهاي قابل تعقيب توسط پروفايلر به انواع مختلفي تقسيم‌بندي مي‌شوند كه در قسمت Events از منويWewTrace يعني زماني‌كه كاربر قصد تعريف يك تعقيب جديد را دارد، مشاهده مي‌شوند.

 

 

1- Cursors  
اين مجموعه رخدادهاي مربوط به اتفاقاتي است كه باعث ايجاد شدن، مورد استفاده قرار گرفتن و حذف شدن يك دسته ركوردهاي اطلاعاتي از يك يا چند جدول مي‌شود. همان‌طور كه مي‌دانيد در SQL Server مي‌توان با استفاده از دستور SELECT تعدادي از جداول بانك اطلاعاتي را با هم لينك كرده و مجموعه ركوردهاي اطلاعاتي مربوطه را در يك گروه به نام كرسر قرار داد (همان چيزي كه در زبان‌هاي برنامه‌نويسي مثل ويژوال بيسيك به آن Recordset گفته مي‌شود) هر عملي كه باعث ايجاد شدن يا هر نوع عمليات ديگر بر روي يك كرسر شود مي‌تواند مورد تعقيب پروفايلر قرار گرفته و ثبت شود.

 

 

2- Data Base  
اين مجموعه از رخدادها مربوط به فايل‌هاي داده‌اي يك بانك اطلاعاتي است. هر تغييري كه در ساير فايل‌هاي داده‌اي و فايل‌هاي لاگ يك بانك ايجاد شود در اين مجموعه قرار مي‌گيرد.

3- Errors and Warning  
مقام پيام‌هاي خطا و هشدار كه در زمان اجراي دستورات SQL  يا در زمان كامپايل و اجراي SPها و يا Triggerها به كاربر داده مي‌شود و همچنين خطاهاي مربوط به OLE DB در اين گروه قرار مي‌گيرد.

 

 

4- Locks   
اين گروه از رخدادها، بيشتر زماني مورد استفاده قرار مي‌گيرد كه يك برنامه كاربردي در قفل كردن و آزاد كردن ركوردهاي جداول بانك اطلاعاتي دچار ضعف و اشتباه مي‌شود. 
همان‌طور كه مي‌دانيد بسياري از برنامه‌هاي كاربردي در مقاطع زماني خاص اقدام به قفل كردن يك يا چند جدول اطلاعاتي مي‌كنند كه اين كار و همچنين آزاد كردن آن جداول بايد با حساسيت و دقت خاصي انجام شود تا در كار بقيه كاربران اخلال ايجاد نكند اما متأسفانه بسياري از اين نوع برنامه‌ها خصوصاً برنامه‌هايي كه قدمت چنداني ندارند اغلب از اين لحاظ دچار بي‌دقتي و ضعف زيادي هستند.

 

 

5- Scans   
هر عملي كه در حافظه اصلي تخصيص داده شده به SQL server  قابل دستيابي باشد در اين دسته قرار مي‌گيرد. به‌خصوص عمليات مربوط به Cache كه در داخل موتور بانك اطلاعاتي انجام مي‌شود جزو اين دسته محسوب مي‌شوند.

 

 

6- Stored procedveres  
شامل كليه وقايعي كه ممكن است براي يك روال رخ دهد مي‌باشد. كامپايل، فراخواني، شروع اجرا، وضعيت در حال اجرا، پايان اجرا، همگي از جمله رخدادهاي قابل وقوع در اين دسته مي‌باشند.

 

 

7- TSQL 
اين نوع رخدادها شامل كليه وقايعي است كه باعث اجراي هر يك از دستورات زبان TSQL  به صورت تكي يا دسته‌اي (Batch) مي‌شود. دستورات SELECT ،Insert ،UpdATE ، DELETE و ... هر كدام آغاز و پاياني مشخص با نتايج معين در يك بانك اطلاعاتي دارند كه مي‌توانند به وسيله اين نوع رخداد مورد بررسي قرار گيرند.

 

 

8- Transaction   

 

 

شكل 1

در اين دسته، كليه وقايع مربوط به فرآيند از جمله شروع (BEGIN) تأييد
 (Commit) و بازگشت (Roll Back) قرار مي‌گيرند. هر فرآيند شامل چند دستور SQL  مي‌باشد كه يا بايد همگي بدون اشكال اجرا شوند و يا اين‌كه هيچكدام اجرا نگردند. 
اهميت فرآيند و استفاده مناسب از آن‌ها در يك بانك اطلاعاتي و برنامه كاربردي مربوط به آن جاي هيچ‌گونه ترديدي را براي وجود ابزاري جهت ثبت و مانيتورينگ وقايع  باقي نمي‌گذارد. لذا اين دسته از رخدادها همانند رخدادهاي SQL يكي از پركاربردترين رخدادها قلمداد مي‌شوند.

 

 

 

9- Session  
اين دسته از وقايع شامل كليه رخدادهاي مربوط به اتصال كاربران به بانك اطلاعاتي (login) و خروج از آن (logout) يا قطع اتصال در اثر بروز هر عاملي (Disconnect) مي‌باشد و براي كنترل و رفع ايراد ورود و خروج كاربران به سيستم مورد استفاده قرار مي‌گيرد.

 

 

 

 

اجراي آزمايشي يك Trace  

 

 

شكل 2

 

 

براي شروع، مي‌خواهيم يك تعقيب آزمايشي براي ثبت برخي رخدادهاي قابل وقوع در سيستم با استفاده از پروفايلر بسازيم. براي اين‌كار برنامه Profiler را اجرا كرده و منوي New Trace را كليك مي‌كنيم تا ليستي از وقايع قابل ثبت كه آن‌ها را در قسمت قبل شرح داديم ظاهر شود. در قسمت General كافي است يك نام براي Trace  موردنظر انتخاب كرده و سپس يك مسير براي درج فايل حاوي لاگ رخدادهاي مذكور، به پروفايلر معرفي كنيم. لازم به ذكر است كه پروفايلر قادر است به جاي يك فايل، لاگ‌هاي توليد شده را در يكي از جداول همان بانك اطلاعاتي ذخيره كند. همچنين اگر مايل باشيد كه هيچ لاگي براي شما ثبت نشود، پروفايلر مي‌تواند صرفاً لاگ‌ها را در قالب يك پنجره در داخل خود برنامه به صورت يك ليست به شما نشان دهد (شكل 1).

در ضمن در داخل همين پنجره مي‌توانيد يك الگوي پيش‌ساخته را كه قبلاً توسط خودتان يا ديگران تنظيم شده مورد استفاده قرار دهيد تا در قسمت بعد كه مي‌خواهيد رخدادها را از داخل ليست انتخاب نماييد دچار مشكل نشويد. البته برنامه پروفايلر به صورت پيش‌فرض الگوي استاندارد خودش براي نظارت بر عملكرد كاربران و موتور پايگاه داده را به نام SQL Profilerstandard به شما پيشنهاد مي‌كند كه كافي است با قبول كردن آن به زبانه Events برويد. در آن‌جا طبق الگوي مذكور، يك سري از رخدادها از داخل ليست سمت چپ به صورت اتوماتيك انتخاب شده و جهت لاگ شدن در ليست سمت راست قرار مي‌گيرد، علاوه براي اين‌كه شما هم مي‌توانيد با استفاده از دو كليدAdd  و Remove رخدادهاي موردنظر خودتان را جهت لاگ شدن به ليست سمت راست، اضافه يا كم كنيد (شكل 2). 

 

 

شكل 3

 

 

در اين‌جا فرض بر اين است كه قصد ما ساختن يك  Trace براي كنترل و نظارت بر دستورات SQL در حال اجرا توسط كاربر مدير سيستم يعني sa مي‌باشد بنابراين كافيست صرفاً مجموعه زير گروه TSQL را در ليست سمت راست نگه داريم و بقيه را با كليد Remove به سر جاي خود يعني ليست سمت چپ برگردانم. 

در قسمت بعد بايد ستون‌هاي مورد استفاده لاگ را مشخص كنيم. با اين كار پروفايلر اطلاعات مربوط به لاگ‌هاي توليد شده را به شكل مناسبي كه ما مي‌خواهيم توليد مي‌كند اين انتخاب در زبانه Data Coloumns  قابل تنظيم است. به عنوان مثال ستون TextData متن عبارت SQL در حال اجرا را نشان مي‌دهد يا اين‌كه ستون Application  نام برنامه كاربردي كه اين دستور SQL  از طرف آن برنامه، اجرا شده را مشخص مي‌نمايد. بهتر است در اين مرحله كليه ستون‌هاي پيش‌فرض انتخاب شده توسط پروفايلر را قبول كرده و به مرحله آخر يعني فيلتر كردن اطلاعات برسيم (شكل 3).


 

 

شكل 4

 

در زبانه فيلتر (Filter) امكان محدود كردن نمايش اطلاعات لاگ شده (منظور رديف‌هاي آن اطلاعات است) به كاربر داده مي‌شود. به عنوان مثال چون هدف ما صرفاً نمايش دستورات SQL اجرا شده توسط كاربر sa است، به همين دليل يك فيلتر بر روي ستون User DataBase تعريف كرده و قسمت like آن را به كلمه sa انتساب مي‌دهيم. حتي اگر باز هم قصد محدودتر كردن گزارش را داشته باشيد مي‌توانيد روي ستون‌هاي ديگر هم فيلتر بگذاريد. مثلاً براي اين‌كه صرفاً دستورات DELETE كاربر مذكور به شما نشان داده شود مي‌توانيد در همين جا علاوه بر فيلتر قبل، يك فيلتر جديد بر روي ستون Text Data تعريف كرده و عبارت LIKE  آن را به كلمه DELETE منتسب كنيد (شكل 4).

پس از طي مراحل فوق، اكنون نوبت به اجراي Trace مذكور مي‌رسد اين‌كار از طريق كليك بر روي دكمه Run انجام مي‌گيرد. بلافاصله يك پنجره جديد حاوي ستون‌هايي كه ما در قسمت Coloumns انتخاب كرده بوديم نمايش داده مي‌شود. اين ليست بعد از انجام هر دستور SQL كه شرايط موردنظر ما در قسمت Filter برآورده كند به روز 
(Refresh)  مي‌شود و كليه دستورات مذكور را به ترتيب زمان انجام، در درون ليست قرار مي‌دهد (شكل 5).
 

 

 

 

 

 


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:






ارسال شده در تاریخ : جمعه 10 فروردين 1391برچسب:, :: 21:47 :: توسط : عماد عزیزی

درباره وبلاگ
به وبلاگ من خوش آمدید
آخرین مطالب
آرشيو وبلاگ
نويسندگان
پيوندها

 

تبادل لینک هوشمند
برای تبادل لینک ابتدا ما را با عنوان اموزش بانک اطلاعاتی و آدرس amoozesh-database.LXB.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.







نام :
وب :
پیام :
2+2=:
(Refresh)

خبرنامه وب سایت:





آمار وب سایت:
 

بازدید امروز : 23
بازدید دیروز : 32
بازدید هفته : 57
بازدید ماه : 55
بازدید کل : 89367
تعداد مطالب : 14
تعداد نظرات : 1
تعداد آنلاین : 1



خبرنامه وبلاگ:

برای ثبت نام در خبرنامه ایمیل خود را وارد نمایید





كد تقويم

Untitled Document
دریافت کد خوش آمدگویی